草庐IT

vector_float

全部标签

C# 从 float 变量中获取数字

我有一个float变量,我只想得到逗号后面的部分,所以如果我有3.14。我想得到14作为整数。我该怎么做? 最佳答案 您可以从值本身中减去整数部分以检索小数部分。floatx=3.14floatfractionalPortion=x-Math.Truncate(x);然后您可以将它相乘,得到小数部分,以您想要的任何精度表示为整数。将小数部分映射到整数有一些挑战-许多float不能表示为以10为底的整数,因此可能需要比整数所能支持的更多的数字来表示。还有,像3.1和3.01这样的数字呢?直接映射到整数都会得到1。

C# float 无限循环

C#(.Net3.5SP1)中的以下代码在我的机器上是一个无限循环:for(floati=0;i它达到了数字16777216.0,16777216.0+1的计算结果为16777216.0。然而此时:i+1!=i。这有点疯狂。我意识到float的存储方式有些不准确。而且我读到大于2^24的整数无法正确存储为float。仍然是上面的代码,即使无法正确表示数字,也应该在C#中有效。为什么不起作用?您可以对double进行同样的操作,但这需要很长时间。9007199254740992.0是double的限制。 最佳答案 是的,所以问题是为了

c# - 为什么 System.Windows.Point 和 System.Windows.Vector 是可变的?

鉴于可变结构通常被认为是邪恶的(例如Whyaremutablestructs“evil”?),是否有潜在的好处可能促使.NET框架的设计者制作System.Windows.Point&System.Windows.Vector可变?我想了解这一点,以便我可以决定让我自己的类似结构可变(如果有的话)是否有意义。使Point和Vector可变的决定可能只是判断错误,但如果有充分的理由(例如,性能优势),我想了解它是什么。我知道我在Vector.Normalize()方法的实现上被绊倒了几次,因为令人惊讶的是(!),它没有返回一个新的Vector。它只是改变了电流矢量。我一直认为它应该是这样

C# 将包含 float 的字符串转换为整数

例如,将可以为空或包含“1.2”的字符串转换为整数的最佳方法是什么?int.TryParse当然会失败,我不想使用float.TryParse然后转换为int。 最佳答案 解决方案1:Convert.ToDouble(文化相关)您可以使用Convert.ToDouble。但是,当心!仅当当前区域性设置中的数字分隔符是句点字符时,以下解决方案才有效。vara=(int)Convert.ToDouble("1.2");解决方案2:Convert.ToDouble(文化无关)最好使用IFormatProvider并以独立于当前文化设置的方

c# - Float to Double 转换 - 单元测试中的最佳断言?

给出语句floatf=7.1f;doubled=f;我们可以在关于d的单元测试中断言什么?例如这不起作用:Console.WriteLine(d==7.1d);//falseConsole.WriteLine(d7.1d-float.Epsilon);//false(lessluck)目前我发现的最好的方法是将值转换回来:floatf2=(float)d;Console.WriteLine(f2==f);//true这和粗暴的说法是一样的Console.WriteLine(d==7.1f);//7.1fimplicitlyconvertedtodoubleasabove这个问题不是关于

javascript - 使用 float 图创建 PDF 报告

我正在尝试为我的客户实现一个自动报告生成工具。我需要以pdf格式创建报告,并且我非常擅长使用Jqueryflot创建图形。我只需要一种方法来获取pdf中的图表。我尝试使用飞碟(xhtmlrenderer)来捕捉图表的图像,但它似乎对我没有帮助,因为图表是由javascript创建的。xhtmlrenderer可以捕获用javascript创建的元素吗?或者他们是否有任何其他工具可以捕获图形图像? 最佳答案 Flot在HTML5上绘制图形元素。那么可能的场景可能是这样的:使用toDataURL从Canvas中检索图像数据如thisan

javascript - 如何以编程方式移动 OpenLayers Vector?

OpenLayers.Feature.Vector的API文档说Vector本身根本没有方法。我知道如何让用户通过添加OpenLayers.Control.DragFeature来移动Vector控制映射。因此,如果用户可以移动Vector,那么也必须有一种以编程方式移动它的方法。但我不知道该怎么做。 最佳答案 你移动一个OpenLayers.Feature.Vector通过在其geometry上调用方法来对象对象,而不是向量本身。这些方法包括移动、旋转、调整大小和变换。请注意,您不会在OpenLayers.Geometry基础对象

javascript - 如何从javascript中的字符串中提取 float

我在textarea中有xml内容,可以是以下形式,或者20.434-12.334我希望能够提取每行的两个float。 最佳答案 您可以将正则表达式/[+-]?\d+(\.\d+)?/g与String.match()结合使用解析数字和Array.map()将它们变成花车:varregex=/[+-]?\d+(\.\d+)?/g;varstr='';varfloats=str.match(regex).map(function(v){returnparseFloat(v);});console.log(floats);varstr2=

javascript - 使用 javascript 添加 float

我正在使用jQuery,我想总结我的表列中的值,一切似乎都工作正常,但我的值返回一个字符串,其中添加了所有值,如:123.5013.0012.35我怎样才能正确地总结这些?vartotals$(".add").each(function(i){totals+=parseFloat($(this).text()).toFixed(2);});console.log(totals); 最佳答案 那里有多个错误。一个是不将总计初始化为数字,例如0.0。第二个是没有意识到.toFixed()返回一个字符串。Javascript将字符串连接在

c# - JQuery + Asp.Net MVC,传递 float

我最近在使用MVC,在尝试使用ajax向我的Controller发送请求时遇到了一个奇怪的问题。我正在使用MVC直接附带的JQuery(版本1.3.2),我正在尝试发送这样的ajax请求:$.post("Home/OpenTrade",{price:1.5},function(){},"json");我还尝试了parseFloat("1.5")而不是1.5。当我尝试使用在Controller中接收此值时[AcceptVerbs(HttpVerbs.Post)]publicvoidOpenTrade(float?price)我的价格始终为空。如果我省略?则根本不会调用Controller