当尝试在python中乘以两个小数对象时,我遇到了精度损失。我该如何解决这个问题?
u = Decimal("1.4142135623730950488016887242096980785696718753769480731766797379907324784621070388503875343276415727350138462309122970249248360558507372126441214970999358314132")
y = Decimal(10**100)
z = u*y
str(int(z))
=> '14142135623730950488016887240000000000000000000000000000000000000000000000000000000000000000000000000'
答案 0 :(得分:5)
十进制不是<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
<tr>
<td>
<select name="jens_id[]" class="jens_id" required="">
<option ></option>
<option >1</option>
<option >2</option>
</select>
</td>
<td></td>
</tr>
<tr>
<td>
<select name="jens_id[]" class="jens_id" required="">
<option ></option>
<option >1</option>
<option >2</option>
</select>
</td>
<td></td>
</tr>
</table>
<script>
$(document).ready(function() {
// or use attribute equals selector
// $('[name="jens_id[]"]')
$('.jens_id').change(function() {
statteId = $(this).val(); // or this.value
console.log(statteId);
// get the td and update with value
$(this).parent().next().text(statteId);
});
});
</script>
之类的任意精度,而是具有固定但可更改的精度小数。默认情况下为28,这恰好是您的电话号码暂时中断的地方。
您可以通过执行int
或您需要的任何精度来更改此设置。有关详细信息,请转至documentation。
答案 1 :(得分:1)
&#34;与基于硬件的二进制浮点不同,十进制模块具有用户可更改的精度(默认为28个位置),可以与给定问题所需的一样大#34;
您可以通过调用decimal.getcontext().prec = 256
(或任何其他符合您目的的值)