我认为非常基本的问题 - 我正在执行此功能:
private double convertMetersToFeet(double meters)
{
//function converts Feet to Meters.
double toFeet = meters;
toFeet = meters*3.2808; // official conversion rate of Meters to Feet
return toFeet;
}
Run Code Online (Sandbox Code Playgroud)
问题是输出; 例如,我从101的输入得到337.36080000000004.截断浮点的适当做法是什么?
如下面的答案所假设,我希望4个有效数字与我的转换率保持一致.
获取Perl数组的最后N个元素的最佳方法是什么?
如果数组小于N,我不希望undefs在返回值中有一堆.
我为生活编写货币交易应用程序,所以我必须处理货币价值(遗憾的是,Java仍然没有十进制浮动类型,并且没有任何东西可以支持任意精确的货币计算)."使用BigDecimal!" - 你可能会说.我做.但现在我有一些代码在性能是一个问题,BigDecimal为超过1000次(!)慢于double原语.
计算很简单:系统做什么是计算a = (1/b) * c很多很多次(其中a,b并c有固定的点值).然而,问题在于此(1/b).我不能使用定点算术,因为没有固定点.而且BigDecimal result = a.multiply(BigDecimal.ONE.divide(b).multiply(c)不仅丑陋,而且缓慢.
我可以用什么来代替BigDecimal?我需要至少10倍的性能提升.我发现了其他优秀的JScience库,它具有任意精度的算术,但它甚至比BigDecimal慢.
有什么建议?
我试图使用我的datacontext.designer.cs文件中的扩展性方法定义来进行一些验证.
所以我创建了一个新文件并添加了这段代码:
public partial class LawEnforcementDataContext : System.Data.Linq.DataContext
{
partial void InsertCourse(Course instance) // this definition copied from generated file
{
ValidateCourse(instance);
this.ExecuteDynamicInsert(instance);
}
partial void UpdateCourse(Course instance) // this definition copied from generated file
{
ValidateCourse(instance);
this.ExecuteDynamicUpdate(instance);
}
private void ValidateCourse(Course instance)
{
if (instance.StartDate > instance.EndDate)
{
throw new ApplicationException("Start date cannot be later than end date.");
}
}
}
Run Code Online (Sandbox Code Playgroud)
我因为这些错误而无法编译:
Error 1 No defining declaration found for implementing declaration of partial method 'LawEnforcementDataContext.InsertCourse(reservation.lawenforcement.Course)'
Error 2 No defining …Run Code Online (Sandbox Code Playgroud) 根据java api,InputStream.read()描述为:
如果由于到达流末尾而没有可用字节,则返回值-1.此方法将阻塞,直到输入数据可用,检测到流的末尾或抛出异常.
我有一个while(true)循环执行读取,当通过流发送任何内容时,我总是得到-1.这是预期的.
我的问题是什么时候会读取()阻止?因为如果它没有获得任何数据,则返回-1.我希望阻塞读取等到收到数据.如果你已经到达输入流的末尾,不应该读取()只是等待数据而不是返回-1?
或者read()只阻止是否有另一个线程访问流并且你的read()无法访问流?
这引出了我的下一个问题.我曾经有过事件监听器(由我的库提供),当数据可用时会通知我.当我收到通知时,我会调用while((aByte = read()) > -1)存储字节.当我在非常接近的时间内收到两个事件并且我的所有数据都没有被显示时,我感到很困惑.似乎只显示第二个事件数据的尾端,其余部分丢失了.
我最终改变了我的代码,以便当我得到一个事件时,我会调用if(inputStream.available() > 0) while((aByte = read()) > -1)存储字节.现在它正常工作,我的所有数据都显示出来了.
有人可以解释这种行为吗?该InputStream.available()是说要回,你可以阻止下一个调用方之前读取的字节数(流?).即使我不使用.available(),我希望第一个事件的读取只是阻止第二个事件的读取,但不会擦除或消耗过多的流数据.为什么这样做会导致我的所有数据都不显示?
完全重复:使用正则表达式验证电子邮件地址
什么是有效的电子邮件地址字符和模式,以及如何编写与之匹配的正则表达式?
我正在使用RSA加密服务器和客户端之间的通信.假设我们有2个非对称密钥,密钥1和密钥2.
服务器从一开始就有key1(Private),客户端有key1(public)
所以这是场景:
据我所知,这可以防止中间人攻击,或者我错过了什么?在第7点,客户端应该知道是否有人试图给服务器提供错误的加密密钥,因为除了服务器之外没有其他人可以解密key2(公共).
如果有任何可以改善安全性的事情请告诉我.
我正在研究一个小型文本编辑器项目,并希望为几种语言添加基本的语法高亮(Java,XML ......仅举几例).作为一种学习经历,我想添加一个流行或非流行的Java词法分析器.
你推荐什么项目.Antlr可能是最知名的,但它似乎相当复杂和沉重.
这是我所知道的选项.
我有一个像"foo%20bar"的字符串,我想要"foo bar".
我知道必须有一个内置函数来解码Emacs Lisp中的URL编码字符串(查询字符串),但对于我的生活,我今天无法在我的lisp /文件夹或google中找到它.
有谁记得它叫什么?
java ×4
antlr ×1
arrays ×1
bigdecimal ×1
blocking ×1
c# ×1
currency ×1
dsl ×1
elisp ×1
emacs ×1
email ×1
encryption ×1
inputstream ×1
java-io ×1
linq ×1
linq-to-sql ×1
math ×1
mediawiki ×1
oop ×1
optimization ×1
parsing ×1
perl ×1
ragel ×1
regex ×1
rsa ×1
rxtx ×1
security ×1
slice ×1
url ×1
urldecode ×1
urlencode ×1
wiki ×1
wikipedia ×1