来自 ViewModel 的双精度值四舍五入为 javascript 数组中的整数

Doubles from ViewModel get rounded to ints in javascript array

我有这个代码(@Model.TW 是 11,58,@Model.TK 是 27,65)(都是双打):

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

检查参数 [0] 和 [1] 时,双精度值四舍五入为 11 和 27。这是为什么?

在做

时也会发生同样的情况
var double = [@Model.TW];

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

即使把@Model.xx的return类型改成字符串也没有区别

作为 JSON 传递给 JavaScript 的浮点值或直接值 必须 有“.”作为小数分隔符。某些文化使用“,”,因此解析 JSON 或 parseFloat 等数字将无法识别小数部分。

修复:使用不变区域性格式化数字或使用现有库(如 Json.Net)生成 JSON。

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

JSON 示例可在 - How do I write unencoded Json to my View using Razor?

找到