/ / Doubles von ViewModel werden in Javascript-Arrays auf Ints gerundet - Javascript, Arrays, Razor, Rounding, asp.net-mvc-viewmodel

Doppel von ViewModel werden in Javascript-Array gerundet - Javascript, Arrays, Rasierer, Rundung, asp.net-MVC-ViewModel

Ich habe diesen Code (@ Model.TW ist 11,58 und @ Model.TK ist 27,65) (beide Doppel):

var parameters = [@Model.TW,@Model.TK];

Bei der Überprüfung der Parameter [0] und [1] werden die Doppelwerte auf 11 und 27 gerundet. Warum ist das so?

Das gleiche passiert, wenn man es einfach tut

var double = [@Model.TW];

oder

var double = parseFloat("[@Model.TW]");

Selbst wenn die Rückgabetypen von @ Model.xx in string geändert werden, gibt es keinen Unterschied.

Antworten:

2 für die Antwort № 1

Float-Werte, die als JSON- oder direkte Werte an JavaScript übergeben werden Muss haben "." als Dezimaltrennzeichen. Einige Kulturen verwenden "," und analysieren daher Zahlen wie JSON oder with parseFloat Der Dezimalteil wird nicht erkannt.

Korrektur: Verwenden Sie eine unveränderliche Kultur, um Zahlen zu formatieren, oder verwenden Sie vorhandene Bibliotheken (wie Json.Net), um JSON zu erstellen.

var parameters = [@(Model.TW.ToString(CultureInfo.InvariantCulture)),
@(Model.TK.ToString(CultureInfo.InvariantCulture))];

JSON-Beispiel finden Sie unter - Wie schreibe ich mit Razor unverschlüsselten Json in meine Ansicht?