我的问题是,当我尝试通过Ajax将双精度或十进制数发送到C#MVC控制器时,该值始终为null。我可以将值作为字符串发送,也可以毫无问题地发送整数。为什么我不能发送带小数的值?当我检查从客户端发送的请求时,正确的值在那里(表单数据为price=84.50
)。
错误:
参数字典包含非空类型“ System.Decimal”的参数“ price”的空条目
HTML:
<input type="number" step="1" class="form-control" name="price" id="price">
<button type="button" class="btn btn-success">Send</button>
Javascript:
$('.btn-success').click(function () {
//var price = $('#price').val(); - Did not work
//var price = Number($('#price').val()); Did not work
var price = Number($('#price').val()).toFixed(2); // Does not work
$.ajax({
url: 'PriceFunction',
type: 'POST',
data: {
price: price,
}
}).done(function () {
}).fail(function () {
console.log("Error in ajaxfunction!");
});
});
C#:
[HttpPost]
public void PriceFunction(decimal price)
{
// I have tried with decimal, double and double?.
}
发送十进制值时,需要对数据进行字符串化。
data: JSON.stringify({ Price: 5.0 })
这是因为默认联编程序将十进制视为整数。
您当然可以更改为使用,DecimalModelBinder
该链接在以下链接中进行了详细介绍:
ASP.NET MVC3 JSON十进制绑定问题
本文向大家介绍C#浮点,双精度,十进制,包括了C#浮点,双精度,十进制的使用技巧和注意事项,需要的朋友参考一下 示例 浮动 float是.NET数据类型的别名System.Single。它允许存储IEEE 754单精度浮点数。存在此数据类型mscorlib.dll,每个C#项目在创建它们时都会隐式引用该数据类型。 大致范围:-3.4×10 38至3.4×10 38 十进制精度:6-9个有效数字 记
问题内容: 如何确定整数位数和Java中类似数字的小数点后位数。 问题答案: 双精度并不总是精确的表示形式。您只能说如果将其转换为字符串,将有多少个小数位。 这仅适用于未转换为指数符号的数字。您可能会认为1.0小数点后一位或无位。
问题内容: 我用双精度(小数)出现了这个问题。 当double = 1.234567时,我使用 所以结果是1.234 但是当我的倍数是10时 ,结果将是10,000, 我希望这是10 他们是否可以说他只在“ usefull”时才显示小数? 我看到了一些有关此的文章,但是那是php或c#,找不到关于android / java的东西(也许我看起来不太好)。 希望你们能帮我这个忙。 编辑,现在我使用类
基于此阵列: 我想在Java中打印双精度值和ascii值。我在互联网上找不到合适的解决方案。我刚刚发现如何将单个字符转换为整数值。但是很多字符呢?主要问题是,我有一个大char[]和一些双精度和int值存储在.对于双精度值,它们存储在4字节大小和整数1或2字节内,所以我必须阅读所有这些并转换为双精度或整数。 谢谢你帮忙
问题内容: 是否可以通过Chrome的控制台找到元素的控制器?我可以通过在“ 元素面板”中 选择 元素 并使用来获得对该组件的引用 有一个属性(看起来像一个构造函数),但是我不确定该怎么做。有什么办法可以从这里找到控制器的名称吗? 问题答案: 如果您只是这样做(如果您安装了Batarang Chrome扩展程序),则应该能够访问所选元素的作用域的功能和属性。这还应包括控制器在示波器上公开的所有功能
我在应用程序中使用BigDecimal 作为我的数字,例如,使用 JPA。我对术语“精度”和“规模”进行了一些研究,但我不明白它们到底是什么。 有人能解释一下BigDecimal值的“精度”和“刻度”的含义吗? 谢谢!