Ich habe Integer für Preisfeld in der Datenbank verwendet, wenn ich 28.8808 in dem Feld speichern es gerundet und Präzision skaliert (28.8808 = 29) Wie behalte ich die 2 oder 4 Dezimalpunkte. ohne dezimalen Datentyp. dankWie Integer für Geld-Feld in der Datenbank verwenden
Antwort
Wenn Sie Präzision wie das brauchen: 1,23 Sie Ihre Preise so sparen können:
UPDATE prices SET price = (1.23*100) WHERE priceid = X;
und lesen Preise sth wie folgt aus:
SELECT ROUND(price/100,2) FROM prices WHERE priceid = X ;
Wenn Sie eine bessere Präzision benötigen Sie müssen multiplizieren 100 von 10.
Dies ist mein Code:
$getRate = DB::table('currency_rates')
->select('crt_id','buy_rate')
->orderBy('created_at','desc')->first();
$rate = $getRate->buy_rate;
$c_price = $unit_price*$rate;
$expense->c_price = number_format($c_price, 4);
$expense->c_total = number_format($quantity*$c_price, 4);
$expense->rate_id = $getRate->crt_id;
c_price und c_total werden nicht wie erwartet gespeichert, wird geändert.
<?php
$c_prices = ['55400', '55.400', '55 400', '55,400'];
foreach($c_prices as $c_price)
print (string)$c_price . ' => ' . number_format((float)$c_price, 4) . PHP_EOL;
druckt:
55400 => 55,400.0000 [!!!] 55400
55.400 => 55.4000 [OK] 55.4
55 400 => 55.0000 [!!!] 55.0
55,400 => 55.0000 [!!!] 55.0
, wenn Sie 55400 als 55400,0000 statt 55,400.0000 drucken möchten Sie Ihren Code ändern sollte:
den ganzzahligen und Bruchteile würden haltenstring number_format (float $number , int $decimals = 0 , string $dec_point = "." , string $thousands_sep = ",")
number_format($yourVal, 4, '.', ''); // $thousands_sep = '';
immer noch 55400 ist als 55.0000 – Khodadad
gespeichert Bitte teilen Sie 1. Ihre einfügen/update code; 2. Abfrageergebnis (von mysqlclient, phpmyadmin): zuerst: SHOW CREATE TABLE currency_rates; und zweitens: SELECT * FROM currency_rates ORDER BY created_at DESC LIMIT 1; – PawelN
Ich löste es durch Erhöhen der Ziffern (10,4) bis (19,4) und weiß, dass es gut funktioniert. Trotzdem danke. – Khodadad
- 1. Pass Integer Array für Spalte Nummer in der Datenbank
- 2. AndroidManifest.xml verwenden Integer-IDs in der public.xml für Themen gespeichert
- 3. Speichern der IP-Adresse in der Datenbank als Integer
- 4. Verwenden der vorhandenen Datenbank für Mobile App?
- 5. elasticsearch: Wildcards für Integer-Werte verwenden
- 6. Darstellen unbegrenzt in Datenbank mit Integer-Datentyp
- 7. Integer-Variable in die Datenbank einfügen
- 8. Yii2 Konvertieren von Integer zu Datetime zum Anzeigen und Speichern in der Datenbank mit Integer
- 9. Verwenden von Paginieren für bestimmte Benutzer in der Datenbank
- 10. Verwenden der gleichen Datenbank in mehreren Projekten
- 11. Verwenden der vorhandenen Datenbank in Android Wear
- 12. Wie kann ich Integer beliebiger Länge in Perl verwenden?
- 13. Verwenden Größe constraint mit Integer in Grails
- 14. Verwenden der Hive-Datenbank in spark
- 15. Synonym für Integer-Typ?
- 16. Wie Design-Datenbank für diese Situation?
- 17. Symmetrische Integer-Integer-Verschlüsselung
- 18. Integer-Validierung für Eingabe
- 19. Verwenden der JSON-basierten Datenbank für ungeordnete Daten
- 20. Wie speichern Sie Menüs in der Datenbank?
- 21. Wie speichert ORMLite ForeignCollections in der Datenbank?
- 22. INT vs Unique-Identifier für ID-Feld in der Datenbank
- 23. Wie in Windows verwenden Datenbank bildet Anwendung
- 24. Android Verwenden Datenbank in Rundfunkempfänger
- 25. Verwenden der ASP.NET-Mitgliedschaftsanbieter-Datenbank mit Ihrer eigenen Datenbank?
- 26. Maximieren der Summenentfernung für das Integer-Array
- 27. , wie der Wert in der Datenbank
- 28. Welche Datenbank für iOS und Android verwenden
- 29. Warum für alle integer nicht lange verwenden Werte
- 30. ArgumentNullException für Integer
Ein Weg, in zwei verschiedenen Feldern, wenn Sie den Datentyp 'DECIMAL' nicht verwenden möchten. Aber neugieriger Verstand möchte wissen, warum Sie nicht 'DECIMAL' Datentyp verwenden möchten? – 1000111
Da Berechnungen, ich verwendet Dezimal, aber beim Einfügen in der Datenbank wurde geändert, das Format, das ich angegeben wurde, war (10,4) und beim Einfügen 55400 wurde es als 55.0000 – Khodadad
Ich denke, es ist ein Problem mit Ihrem Integer Format Nummer (in Ihr Python/PHP/... Code). Ich denke, Sie generieren Abfrage wo der Preis 55,400 oder 55,400 ist. Richtige Version für 55400 sollte 55400 sein :). – PawelN