0
내 프로그램에서 Neo4jClient를 사용하여 Neo4J 서버와 상호 작용하는 decimal
유형의 속성을 사용하는 데 문제가 있습니다. 프로그램이 무엇을Neo4jClient : 소수점이 작음
using System;
using Neo4jClient;
namespace TestProject
{
class Program
{
static void Main()
{
var graphClient = new GraphClient(new Uri("http://localhost:7474/db/data"));
graphClient.Connect();
const decimal socialFactor = 0.5m;
var userIn = new User {Name = "John Doe", SocialFactor = socialFactor};
var nodeRef = graphClient.Create(userIn);
var userOut = graphClient.Get(nodeRef).Data;
Console.WriteLine(userOut.Name + ", " + userOut.SocialFactor);
Console.WriteLine(userOut.SocialFactor == socialFactor ? "win" : "fail!");
}
}
class User
{
public string Name { get; set; }
public decimal SocialFactor { get; set; }
}
}
는 Neo4j에 0.5의 사회적 요인 (userIn
)와 사용자 노드를 삽입하고, 즉시 (userOut
) 다시 사용자 노드를 검색합니다. 문제는 userOut.SocialFactor
이 0.5 대신 5라는 것입니다.
이상하게도 유형을 double
으로 변경하면 아무런 문제가 없지만 분명히 원하지 않는 것입니다.
이것은 버그입니까? 해결 방법이 있습니까?
감사합니다, 월
어떤 버전의 Neo4jclient를 사용하고 있습니까? 나는 1.0.0.594를 사용하고 코드를 복사하고 콘솔 앱에서 실행한다. (완전히 작동하는 프로그램 btw를 제공하는 좋은 일이다!) 나는 0.5와 'Win'을 되 찾는다. –
@ChrisSkardon : 예, 사용하고있는 버전과 정확히 일치합니다. 5를 얻고 다시 실패합니다. 나는 그것이 내 시스템의 문화와 무언가를해야한다는 것을 알았다. 여기서 쉼표를 소수점 "점"으로 사용합니다. 실제 도트를 사용하도록 설정을 변경하면 프로그램이 예상대로 작동합니다. 그게 버그라고 생각하니? –
전체 코드와 함께 neo4jclient 문제 페이지 (https://bitbucket.org/Readify/neo4jclient/issues?status=new&status=open)에 추가 하겠지만, 말할 필요가 있습니다. "System.Threading.Thread.CurrentThread.CurrentCulture = CultureInfo.GetCultureInfo ("fr-FR "); 줄을 추가하면 (프랑스가 ','을 사용하는) 코드 위에 여전히 결과가 나옵니다. 어떤 문화를 사용하고 있습니까, 어디에서 문화를 바꾸고 있습니까? –