来自ViewModel的双打在javascript数组中舍入到整数

时间:2015-05-06 19:11:30

标签: javascript arrays razor rounding asp.net-mvc-viewmodel

我有这个代码(@ 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的返回类型更改为字符串,也没有区别。

1 个答案:

答案 0 :(得分:2)

作为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?

找到